package proxy;
/*
新的一个知识点:  可以用来增强对象的功能:
   * 设计模式:一些通用的结局固定问题的方式
   1:代理模式
      代理设计模式的好处:
          1: 简化代码的使用流程
          2: 保护真实的方法的调用方式
         * 概念: 将某个功能的调用以及使用的代码封装起来,避免调用方式以及使用代码的直接暴露
           * 相关概念:
              1:真实对象:要进行功能扩展的对象(切点所属的对象)
              2:真实方法:要进行功能扩展的方法
              3:代理对象:调用真实对象并完成功能扩展的的对象
              4:代理方法:调用真实方法的扩展方法
              5:代理模式:代理对象代理真实对象,达到增强真实对象功能目的
         * 代理设计模式的种类:
              1: 静态代理: 代理对象和代理方法都是由程序员自己记性编写
                * 代理流程: 在代理对象的代理方法中调用真实对象的真实方法,然后将代理对象和代理方法对外暴露提供服务
              2: 动态代理: 代理对象和代理方法是动态生成的.
                ***  为了便于用户的调用,要求代理方法和真实方法的方法名,形参,返回值必须保持一致
            * 实现步骤:
               1: 代理对象和真实对象实现相同的接口
               2: 代理对象=Proxy.newProxyInstance();
               3:使用代理对象调用方法
               4:增强方法

*/
public interface SaleComputer {
    public String sale(double money);

    public void show();
}
